package algo_utils

import (
	C "AlgorithmPractice/src/common/constant"
	"math"
)

// 获取最大值
func GetMax(value1, value2 int) int {
	if value1 > value2 {
		return value1
	}
	return value2
}

// 获取最小值
func GetMin(value1, value2 int) int {
	if value1 > value2 {
		return value2
	}
	return value1
}

// 比较大小
func CompAbs(a, b int) int {
	if a < 0 {
		a = -a
	}
	if b < 0 {
		b = -b
	}
	return a - b
}

// 获取绝对值
func GetAbs(a, b int) (absA, absB int) {
	if a < 0 {
		a = -a
	}
	if b < 0 {
		b = -b
	}
	return a, b
}

// 获取数组中比较的两个数中较大数的下标
func GetArrayMaxIndex(array []int, index1, index2 int) int {
	if index1 >= len(array) || index2 >= len(array) {
		return C.ErrorNum
	}
	if array[index1] > array[index2] {
		return index1
	}
	return index2
}

// 获取数组中比较的两个数中较小数的下标
func GetArrayMinIndex(array []int, index1, index2 int) int {
	if index1 >= len(array) || index2 >= len(array) {
		return C.ErrorNum
	}
	if array[index1] > array[index2] {
		return index2
	}
	return index1
}

// 获取数字的四舍五入值
func Round(num float64) float64 {
	return math.Floor(num + 0.5)
}
